// @author: caoshi
// @date: 2021-05-04 00:48
package main

import (
	"fmt"
	"time"
)

func main() {

	/*
		分支语句: if, switch, select
		select 语句类似switch语句
		但是select 会随机选取一个可运行的case
		如果没有可运行的case, 要看是否有default, 没有的话程序就进入阻塞了, 直到
		有case 可以运行
	*/

	ch1 := make(chan int)
	ch2 := make(chan int)

	go func() {
		time.Sleep(3 * time.Second)
		ch1 <- 100
	}()

	go func() {
		time.Sleep(3 * time.Second)
		ch1 <- 200
	}()

	select {
	case num1 := <-ch1:
		fmt.Println("ch1中获取的数据: ", num1)
	case num2, ok := <-ch2:
		if ok {
			fmt.Println("ch2中读取的数据", num2)
		} else {
			fmt.Println("ch2通道已关闭了")
		}
	default:
		fmt.Println("default ")
	}

	fmt.Println("main over")

}
